home *** CD-ROM | disk | FTP | other *** search
/ Hebrew Games I Got / יום הולדת לאיתמר - גרסא ישנה 1.1.IMG / setup.mst < prev    next >
Text File  |  1997-01-01  |  10KB  |  338 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. ''function GetCopyListCost(string1$,string2$,string3$) : longint
  6. ''function GetFreeSpaceForDrive(String$ - driveletter (no :))
  7. ''function GetProccessorTime : int (0-4)
  8. ''function GetWindowsMode : int (0-real,2-standard,3-enhanced)
  9. ''function GetWindowsMajorVersion : int
  10. ''Function GetWindowsMinorVersion : int
  11.  
  12. ''''$DEFINE DEBUG  ''Define for script development/debugging
  13.  
  14. '$INCLUDE 'setupapi.inc'
  15. '$INCLUDE 'msdetect.inc'
  16.  
  17. ''Dialog ID's
  18. CONST WELCOME       = 100
  19. CONST ASKQUIT       = 200
  20. CONST DESTPATH      = 300
  21. CONST EXITFAILURE   = 400
  22. CONST EXITQUIT      = 600
  23. CONST EXITSUCCESS   = 700
  24. CONST OPTIONS       = 800
  25. CONST APPHELP       = 900
  26. CONST BADPATH       = 6400
  27. CONST CBADFILE      = 7200
  28. CONST TOOBIG        = 6300
  29. ''Bitmap ID
  30. CONST LOGO = 1
  31.  
  32. GLOBAL DEST$        ''Default destination directory.
  33. GLOBAL OPTCUR$      ''Option selection from option dialog.
  34. GLOBAL UINT
  35. GLOBAL SrcDIR$
  36.  
  37. '$INCLUDE 'SPECS.INC'
  38.  
  39. DECLARE SUB Install
  40. DECLARE SUB NoSpace
  41. DECLARE FUNCTION WinExec LIB "KERNEL" (EXEC$, PARAM%) AS INTEGER
  42. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  43. DECLARE FUNCTION RestartWindows LIB "setuphlp.dll" AS INTEGER
  44. DECLARE FUNCTION VflatdPresent LIB "setuphlp.DLL" AS INTEGER
  45.  
  46. GLOBAL CUIDLL$
  47.  
  48. INIT:
  49.  
  50. '$IFDEF DEBUG
  51.     i%=DoMsgBox("Windows Version:"+Str$(GetWindowsMajorVersion)+"."+Str$(GetWindowsMinorVersion), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  52.     i%=DoMsgBox("Kernel Version:"+Str$(GetVersion), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  53.     i%=DoMsgBox(GetIniKeyString("system.ini", "keyboard", "seckbd.dll"), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  54.     i%=DoMsgBox(GetIniKeyString("system.ini", "boot.description", "keyblang.dll"), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  55.     i%=DoMsgBox(GetIniKeyString("system.ini", "boot.description", "language.dll"), "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  56.  
  57.  
  58. '$ENDIF ''DEBUG
  59.  
  60.  
  61. '    IF GetWindowsMajorVersion = 4 or (GetWindowsMajorVersion = 3 and GetWindowsMinorVersion = 95) THEN
  62. '    ELSE
  63. '      CreateProgmanGroup GROUPNAME$, ALTGROUPNAME$, "", cmoNone
  64. '    END IF
  65.  
  66.  
  67.     IF INSTR(1, UCASE$(GetIniKeyString("system.ini", "boot.description", "keyblang.dll")), "HEBREW") = 0 THEN
  68.       IF INSTR(1, UCASE$(GetIniKeyString("system.ini", "boot.description", "language.dll")), "HEBREW") = 0 THEN
  69.         IF UCASE$(GetIniKeyString("system.ini", "keyboard", "seckbd.dll")) <> "KBDHE.DLL" THEN
  70.           IF UCASE$(GetIniKeyString("win.ini", "intl", "scountry")) <> "ISRAEL" THEN
  71.             GROUPNAME$ = ALTGROUPNAME$
  72.           END IF
  73.         END IF
  74.       END IF
  75.     END IF
  76.  
  77.  
  78.     IF GROUPNAME$ = ALTGROUPNAME$ THEN
  79. ''    or GetWindowsMajorVersion = 4 or (GetWindowsMajorVersion = 3 and GetWindowsMinorVersion = 95) THEN
  80.       GROUPNAME$ = ALTGROUPNAME$
  81.       CUIDLL$ = "mscuiste.dll"
  82.       SetTitle ALTWINDOW_TITLE$
  83.     Else
  84.       CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  85.       SetTitle WINDOW_TITLE$
  86.     END IF
  87.     
  88.  
  89.  
  90.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  91.  
  92.     SetBitmap CUIDLL$, LOGO
  93.  
  94.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  95.     IF szInf$ = "" THEN
  96.         szInf$ = GetSymbolValue("STF_CWDDIR") + INFFILE$
  97.     END IF
  98.     ReadInfFile szInf$
  99.  
  100.     OPTCUR$ = "1"
  101.     DEST$ = APPDESTDIR$
  102.  
  103. '$IFDEF DEBUG
  104.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  105.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  106.     IF IsDriveValid(WinDrive$) = 0 THEN
  107.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  108.         GOTO QUIT
  109.     END IF
  110. '$ENDIF ''DEBUG
  111.  
  112.  
  113. WELCOME:
  114.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  115.     IF sz$ = "CONTINUE" THEN
  116.         UIPop 1
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO WELCOME
  120.     END IF
  121.  
  122.  
  123. 'OPTION:
  124. '    SetSymbolValue "RadioDefault", OPTCUR$
  125. 'OPTL1:
  126. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  127. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  128.  
  129. '    IF sz$ = "CONTINUE" THEN
  130. '        UIPop(1)
  131. '    ELSEIF sz$ = "REACTIVATE" THEN
  132. '        GOTO OPTL1
  133. '    ELSE
  134. '        GOSUB ASKQUIT
  135. '        GOTO OPTION
  136. '    END IF
  137.  
  138.  
  139. GETPATH:
  140.     WinDrive$ = MID$(GetWindowsDir, 1, 3)
  141.     DEST$ = MakePath(WinDrive$, Dest$)
  142.     SetSymbolValue "EditTextIn", DEST$
  143.     SetSymbolValue "EditFocus", "END"
  144. GETPATHL1:
  145.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  146.     DEST$ = GetSymbolValue("EditTextOut")
  147.  
  148.     IF sz$ = "CONTINUE" THEN
  149.         IF IsDirWritable(DEST$) = 0 THEN
  150.             GOSUB BADPATH
  151.             GOTO GETPATHL1
  152.         END IF
  153.  
  154.         UIPop 1
  155.     ELSEIF sz$ = "REACTIVATE" THEN
  156.         GOTO GETPATHL1
  157.     ELSEIF sz$ = "BACK" THEN
  158.         UIPop 1
  159.         GOTO WELCOME ''OPTION
  160.     ELSE
  161.         GOSUB ASKQUIT
  162.         GOTO GETPATH
  163.     END IF
  164.  
  165.  
  166.     Install
  167.  
  168.  
  169. QUIT:
  170.     ON ERROR GOTO ERRQUIT
  171.  
  172.     IF ERR = 0 THEN
  173.         dlg% = EXITSUCCESS
  174.  
  175.     ELSEIF ERR = STFQUIT THEN
  176.         dlg% = EXITQUIT
  177.     ELSE
  178.         dlg% = EXITFAILURE
  179.     END IF
  180. QUITL1:
  181.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  182.     IF sz$ = "REACTIVATE" THEN
  183.         GOTO QUITL1
  184.     END IF
  185.     UIPop 1
  186.  
  187.     IF dlg% = EXITSUCCESS THEN
  188.      UINT = WinExec(MakePath(SrcDir$,"Launch.EXE")+" "+MakePath(SrcDir$,"Launch.INI"), 1)
  189.     ENDIF
  190.     END
  191.  
  192. ERRQUIT:
  193.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  194.     END
  195.  
  196.  
  197.  
  198. BADPATH:
  199.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  200.     IF sz$ = "REACTIVATE" THEN
  201.         GOTO BADPATH
  202.     END IF
  203.     UIPop 1
  204.     RETURN
  205.  
  206.  
  207.  
  208. ASKQUIT:
  209.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  210.  
  211.     IF sz$ = "EXIT" THEN
  212.         UIPopAll
  213.         ERROR STFQUIT
  214.     ELSEIF sz$ = "REACTIVATE" THEN
  215.         GOTO ASKQUIT
  216.     ELSE
  217.         UIPop 1
  218.     END IF
  219.     RETURN
  220.  
  221.  
  222.  
  223. '**
  224. '** Purpose:
  225. '**     Builds the copy list and performs all installation operations.
  226. '** Arguments:
  227. '**     none.
  228. '** Returns:
  229. '**     none.
  230. '*************************************************************************
  231. SUB NoSpace STATIC
  232.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  233.     UIPop 1
  234.     ERR=STFQUIT+1
  235.     RETURN
  236. END SUB
  237.  
  238. SUB Install STATIC
  239. '    LocalDir$ = GetSymbolValue("STF_SRCDIR")
  240.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  241.     SysDir$ = GetWindowsSysDir
  242.     bInstallDVA% = 0 
  243.     
  244.     CreateDir DEST$, cmoNone
  245.  
  246.     ClearCopyList
  247.       
  248.       SetRestartDir(DEST$)
  249.  
  250.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  251. '    AddSectionFilesToCopyList "Music", SrcDir$, DEST$
  252.  
  253.     AddSectionFilesToCopyList "WinG", SrcDir$, SysDir$
  254.     AddSectionFilesToCopyList "VxD", SrcDir$, SysDir$
  255. '    AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  256.     
  257.  
  258.     IF GetCopyListCost("",Drv2$,Drv3$) <> 0 THEN
  259.       NOSPACE
  260.     ENDIF
  261.  
  262.     CopyFilesInCopyList
  263.  
  264. '    IF GetWindowsMajorVersion = 4 THEN
  265. '      GROUPNAME$ = ALTGROUPNAME$
  266. '    END IF
  267.     
  268.     CreateProgmanGroup GROUPNAME$, ALTGROUPNAME$, "", cmoNone
  269.     ShowProgmanGroup   GROUPNAME$, 1, cmoNone
  270.  
  271.     IF GetWindowsMajorVersion = 4 or (GetWindowsMajorVersion = 3 and GetWindowsMinorVersion = 95) THEN
  272.     ELSE  
  273.       IF VflatdPresent()=0 then
  274.         CreateSysIniKeyValue GetWindowsDir + "system.ini", "386Enh", "device", GetWindowsSysDir+"dva.386", cmoOverwrite
  275.         bInstallDVA% = 1
  276.       END IF
  277.     END IF
  278.  
  279. '    CreateIniKeyValue MakePath(Dest$, CFGF$), "ENG", "PicFile", MakePath(Dest$, GetIniKeyString(MakePath(Dest$, CFGF$), "ENG", "PicFile")), cmoOverWrite
  280. '    CreateIniKeyValue MakePath(Dest$, CFGF$), "ENG", "ofsFile", MakePath(Dest$, GetIniKeyString(MakePath(Dest$, CFGF$), "ENG", "ofsFile")), cmoOverWrite
  281.     
  282.     CreateIniKeyValue MakePath(Dest$, CFGF$), "GLOBALS", "SaveDir", Dest$, cmoOverWrite
  283.     
  284.     IF ICONFILE$ = "" THEN
  285.     ELSE
  286.       ICONFILE$ = makePath(SrcDir$, ICONFILE$)
  287.     END IF
  288.  
  289.     CreateProgmanItem GROUPNAME$, ALTGROUPNAME$, PROGRAMTITLE$, ALTPROGRAMTITLE$,MakePath(DEST$,EXEF$+" ")+"/CFG:"+makePath(DEST$,CFGF$), ICONFILE$+",,,,"+SrcDir$, cmoOverwrite
  290.     CreateProgmanItem GROUPNAME$, ALTGROUPNAME$, PROGRAMTITLE1$, ALTPROGRAMTITLE1$,MakePath(DEST$,EXEF1$+" ")+"/CFG:"+makePath(DEST$,CFGF1$), ICONFILE$+",,,,"+SrcDir$, cmoOverwrite
  291.     CreateProgmanItem GROUPNAME$, ALTGROUPNAME$, PROGRAMTITLE2$, ALTPROGRAMTITLE2$,MakePath(DEST$,EXEF2$+" ")+"/CFG:"+makePath(DEST$,CFGF2$), ICONFILE$+",,,,"+SrcDir$, cmoOverwrite
  292.     CreateIniKeyValue MakePath(GetWindowsDir,"compedia.ini"), "GAMES", GetIniKeyString(MakePath(SrcDir$, "launch.ini"), "GLOBAL", "GAMENAME") , MakePath(DEST$,EXEF$+" ")+"/CFG:"+makePath(DEST$,CFGF$)+ " /startdir:"+SrcDir$, cmoOverWrite
  293.  
  294.     IF GROUPNAME$ = ALTGROUPNAME$ THEN
  295. '      CreateIniKeyValue MakePath(Dest$, CFGF$), "GLOBALS", "Languages", "ENG FRE HEB", cmoOverWrite
  296.     END IF
  297.  
  298. '    CUIDLL$ = "mscuistf.dll"
  299.     '' invoke the 'Restart Windows?' dialog
  300.     if bInstallDVA% = 1 then
  301.         sz$ = UIStartDlg(CUIDLL$, 7200, "FInfoDlgProc", APPHELP, HELPPROC$)
  302.         UIPop 1
  303.         IF sz$ = "CONTINUE" THEN
  304.             rc% = RestartWindows
  305.         ENDIF
  306.     endif
  307.  
  308.     RemoveFile MakePath(DEST$,"_mssetup.exe"),cmoForce
  309.     RemoveFile MakePath(DEST$,"_mssetup.bat"),cmoForce
  310.     RemoveFile MakePath(DEST$,"_msrstrt.exe"),cmoForce
  311.  
  312. END SUB
  313.  
  314.     
  315.  
  316. '**
  317. '** Purpose:
  318. '**     Appends a file name to the end of a directory path,
  319. '**     inserting a backslash character as needed.
  320. '** Arguments:
  321. '**     szDir$  - full directory path (with optional ending "\")
  322. '**     szFile$ - filename to append to directory
  323. '** Returns:
  324. '**     Resulting fully qualified path name.
  325. '*************************************************************************
  326. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  327.     IF szDir$ = "" THEN
  328.         MakePath = szFile$
  329.     ELSEIF szFile$ = "" THEN
  330.         MakePath = szDir$
  331.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  332.         MakePath = szDir$ + szFile$
  333.     ELSE
  334.         MakePath = szDir$ + "\" + szFile$
  335.     END IF
  336. END FUNCTION
  337.  
  338.